"""
深拷贝可变类型，为可变类型开辟新的内存空间，所有曾都会被拷贝过来
"""
import copy


# 演示可变类型深拷贝
def func_deep1():
    a = [1, 2, 3]
    b = [11, 12, 13]
    c = [6, 7, a, b]

    # 测试id(c) 和 id(d)
    d = copy.deepcopy(c)

    print('id(c)------>',id(c)) # c和d 的地址不一样
    print('id(d)------>',id(d))

    print(id(c[2]))
    print(id(d[2]))

    # a[2] = 22
    # b[2] = 122
    # print(c) # [6, 7, [1, 2, 22], [11, 12, 122]]
    # print(d) # [6, 7, [1, 2, 3], [11, 12, 13]]

# 演示深拷贝不可变类型数据， 如果深拷贝不可变数据类型，不会单独开辟内存空间，而是直接拷贝地址
def func_deep2():
    a = (1, 2, 3)
    b = (11, 12, 13)
    c = (6, 7, a, b)

    d = copy.deepcopy(c)

    print(id(c)) # 地址 c和的一样
    print(id(d))

    print(c)
    print(d)

if __name__ == '__main__':
    # func_deep1()
    func_deep2()